From: George Dunlap Date: Thu, 23 Feb 2012 10:17:50 +0000 (+0000) Subject: libxc: Implement SCHEDOP sysctl for credit scheduler X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/%22bookmarks://%22/%22http:/www.example.com/cgi/%22https:/%22bookmarks:/%22?a=commitdiff_plain;h=83421b2079dfb2702df99727216635177689312a;p=xen.git libxc: Implement SCHEDOP sysctl for credit scheduler Signed-off-by: George Dunlap Acked-by: Ian Jackson Committed-by: Keir Fraser --- diff --git a/tools/libxc/xc_csched.c b/tools/libxc/xc_csched.c index 212bc4f395..390c645f27 100644 --- a/tools/libxc/xc_csched.c +++ b/tools/libxc/xc_csched.c @@ -61,3 +61,47 @@ xc_sched_credit_domain_get( return err; } + +int +xc_sched_credit_params_set( + xc_interface *xch, + uint32_t cpupool_id, + struct xen_sysctl_credit_schedule *schedule) +{ + int rc; + DECLARE_SYSCTL; + + sysctl.cmd = XEN_SYSCTL_scheduler_op; + sysctl.u.scheduler_op.cpupool_id = cpupool_id; + sysctl.u.scheduler_op.sched_id = XEN_SCHEDULER_CREDIT; + sysctl.u.scheduler_op.cmd = XEN_SYSCTL_SCHEDOP_putinfo; + + sysctl.u.scheduler_op.u.sched_credit = *schedule; + + rc = do_sysctl(xch, &sysctl); + + *schedule = sysctl.u.scheduler_op.u.sched_credit; + + return rc; +} + +int +xc_sched_credit_params_get( + xc_interface *xch, + uint32_t cpupool_id, + struct xen_sysctl_credit_schedule *schedule) +{ + int rc; + DECLARE_SYSCTL; + + sysctl.cmd = XEN_SYSCTL_scheduler_op; + sysctl.u.scheduler_op.cpupool_id = cpupool_id; + sysctl.u.scheduler_op.sched_id = XEN_SCHEDULER_CREDIT; + sysctl.u.scheduler_op.cmd = XEN_SYSCTL_SCHEDOP_getinfo; + + rc = do_sysctl(xch, &sysctl); + + *schedule = sysctl.u.scheduler_op.u.sched_credit; + + return rc; +} diff --git a/tools/libxc/xenctrl.h b/tools/libxc/xenctrl.h index 73d24e53d0..841c110a17 100644 --- a/tools/libxc/xenctrl.h +++ b/tools/libxc/xenctrl.h @@ -668,7 +668,12 @@ int xc_sched_credit_domain_set(xc_interface *xch, int xc_sched_credit_domain_get(xc_interface *xch, uint32_t domid, struct xen_domctl_sched_credit *sdom); - +int xc_sched_credit_params_set(xc_interface *xch, + uint32_t cpupool_id, + struct xen_sysctl_credit_schedule *schedule); +int xc_sched_credit_params_get(xc_interface *xch, + uint32_t cpupool_id, + struct xen_sysctl_credit_schedule *schedule); int xc_sched_credit2_domain_set(xc_interface *xch, uint32_t domid, struct xen_domctl_sched_credit2 *sdom);